package model.utilidades;


public class Vector {
	private int coordenadaX,coordenadaY;
	
	public Vector(int x,int y){
		coordenadaX = x;
		coordenadaY = y;
	}

	public Vector(Vector otroPunto){
		coordenadaX = otroPunto.coordenadaX;
		coordenadaY = otroPunto.coordenadaY;
	}

	public Vector sumarleElVector(Vector otroPunto){
		return new Vector(coordenadaX+otroPunto.coordenadaX,coordenadaY+otroPunto.coordenadaY);
	}

	public Vector restarleElVector(Vector otroPunto){
		return new Vector(coordenadaX-otroPunto.coordenadaX,coordenadaY-otroPunto.coordenadaY);
	}	

	public int distancia(Vector otroPunto){
		return (int) Math.sqrt(Math.pow(coordenadaX+otroPunto.coordenadaX,2)+Math.pow(coordenadaY+otroPunto.coordenadaY,2));
	}
	
	public Vector multiplicarPorEscalar(int escalar){
		return new Vector(coordenadaX*escalar,coordenadaY*escalar);
	}

	public int obtenerCoordenadaX(){
		return coordenadaX;
	}

	public int obtenerCoordenadaY(){
		return coordenadaY;
	}

	public boolean esIgualA (Vector otro){
		boolean igualesEnX = (coordenadaX == otro.obtenerCoordenadaX());
		boolean igualesEnY = (coordenadaY == otro.obtenerCoordenadaY());
		return (igualesEnX && igualesEnY);
	}

	public boolean alineadoCon (Vector otro){
		boolean igualesEnX = (coordenadaX == otro.obtenerCoordenadaX());
		boolean igualesEnY = (coordenadaY == otro.obtenerCoordenadaY());
		return (igualesEnX || igualesEnY);
	}	
	
	public boolean esMayorA(Vector otro){
		if(!alineadoCon(otro))
			return false;
	
		boolean mayorEnX = coordenadaX > otro.obtenerCoordenadaX();
		boolean mayorEnY = coordenadaY > otro.obtenerCoordenadaY();
		return (mayorEnX || mayorEnY);
	}

}
